# Contributor: Łukasz Jendrysik <scadu@yandex.com>
# Contributor: Oliver Smith <ollieparanoid@postmarketos.org>
# Contributor: Michal Artazov <michal@artazov.cz>
# Contributor: Natanael Copa <ncopa@alpinelinux.org>
# Maintainer: Sören Tempel <soeren+alpine@soeren-tempel.net>
pkgname=busybox
pkgver=1.36.1
pkgrel=18
pkgdesc="Size optimized toolbox of many common UNIX utilities"
url="https://busybox.net/"
arch="all"
license="GPL-2.0-only"
makedepends_build="perl"
makedepends_host="linux-headers openssl-dev>3"
# Only build with utmps support if we are not bootstraping.
# skalibs-static is needed for utmps-static
[ -z "$BOOTSTRAP" ] && makedepends_host="$makedepends_host utmps-dev utmps-static skalibs-static"
makedepends="$makedepends_build $makedepends_host"
checkdepends="zip"
install="$pkgname.post-install $pkgname.post-upgrade
	$pkgname-extras.post-install $pkgname-extras.pre-deinstall"
subpackages="
	$pkgname-static
	$pkgname-doc
	$pkgname-suid
	ssl_client
	$pkgname-ifupdown::noarch
	$pkgname-binsh::noarch
	$pkgname-openrc
	$pkgname-mdev-openrc:mdev_openrc
	$pkgname-extras
	$pkgname-extras-openrc:extras_openrc
	"
options="suid net" # net needed for check()
replaces="busybox-initscripts" # move of default.script
triggers="busybox.trigger=/bin:/usr/bin:/sbin:/usr/sbin:/lib/modules/*"

_openrc_files="acpid.initd
	crond.confd crond.initd
	klogd.confd klogd.initd
	ntpd.confd ntpd.initd
	rdate.confd rdate.initd
	syslog.confd syslog.initd
	loadkmap.confd loadkmap.initd
	watchdog.confd watchdog.initd"
_mdev_openrc_files="mdev.initd"
_extras_openrc_files="dnsd.initd httpd.initd inetd.initd udhcpd.initd"

source="https://busybox.net/downloads/busybox-$pkgver.tar.bz2
	0001-modutils-check-ELF-header-before-calling-finit_modul.patch
	0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
	0003-ash-add-built-in-BB_ASH_VERSION-variable.patch
	0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch
	0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch
	0006-modinfo-add-k-option-for-kernel-version.patch
	0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
	0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch
	0009-properly-fix-wget-https-support.patch
	0010-sed-check-errors-writing-file-with-sed-i.patch
	0011-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
	0012-nslookup-sanitize-all-printed-strings-with-printable.patch
	0013-ash-exec-busybox.static.patch
	0014-app-location-for-cpio-vi-and-lspci.patch
	0015-udhcpc-set-default-discover-retries-to-5.patch
	0016-ping-make-ping-work-without-root-privileges.patch
	0017-fbsplash-support-console-switching.patch
	0018-fbsplash-support-image-and-bar-alignment-and-positio.patch
	0019-depmod-support-generating-kmod-binary-index-files.patch
	0020-Add-flag-for-not-following-symlinks-when-recursing.patch
	0021-udhcpc-Don-t-background-if-n-is-given.patch

	0023-tests-fix-tarball-creation.patch
	0024-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch
	0025-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch
	0026-lineedit-Handle-SIGWINCH-gracefully.patch
	0027-umount-Implement-O-option-to-unmount-by-mount-option.patch
	0028-ash-use-after-free-in-bash-pattern-substitution.patch
	0029-awk-fix-use-after-realloc-CVE-2021-42380-closes-1560.patch
	0030-shell-avoid-segfault-on-0-0-0-09J-.-Closes-15216.patch
	0031-ash-initialize-basepf.buf-in-ash.patch
	0032-install-Fix-chown-resetting-suid-sgid-bits-from-chmo.patch
	0033-find-fix-xdev-depth-and-delete.patch
	0034-udhcp-Avoid-leaking-uninitialized-stale-data.patch

	acpid.logrotate
	busyboxconfig
	busyboxconfig-extras
	bbsuid.c
	dad.if-up
	ssl_client.c
	default.script
	udhcpc.conf
	$_openrc_files
	$_mdev_openrc_files
	$_extras_openrc_files
"

# secfixes:
#   1.36.1-r2:
#     - CVE-2022-48174
#   1.35.0-r17:
#     - CVE-2022-30065
#   1.35.0-r7:
#     - ALPINE-13661
#     - CVE-2022-28391
#   1.34.0-r0:
#     - CVE-2021-42374
#     - CVE-2021-42375
#     - CVE-2021-42378
#     - CVE-2021-42379
#     - CVE-2021-42380
#     - CVE-2021-42381
#     - CVE-2021-42382
#     - CVE-2021-42383
#     - CVE-2021-42384
#     - CVE-2021-42385
#     - CVE-2021-42386
#   1.33.0-r5:
#     - CVE-2021-28831
#   1.30.1-r2:
#     - CVE-2019-5747
#   1.29.3-r10:
#     - CVE-2018-20679
#   1.28.3-r2:
#     - CVE-2018-1000500
#   1.27.2-r4:
#     - CVE-2017-16544
#     - CVE-2017-15873
#     - CVE-2017-15874
#   0:
#     - CVE-2021-42373
#     - CVE-2021-42376
#     - CVE-2021-42377

_staticdir="$srcdir"/build-static
_dyndir="$srcdir"/build-dynamic
_dyndir_extras="$srcdir"/build-dynamic-extras
_config="$srcdir"/busyboxconfig
_config_extras="$srcdir"/busyboxconfig-extras

prepare() {
	# remove SGID if set as it confuses the busybox testsuite
	chmod -R g-s "$builddir"
	default_prepare

	mkdir -p "$_staticdir" "$_dyndir" "$_dyndir_extras"
}

build() {
	local _extra_cflags= _extra_libs=
	if [ -z "$BOOTSTRAP" ] ; then
		_extra_cflags="$(pkg-config --cflags --static utmps)"
		_extra_libs="$(pkg-config --libs --static utmps)"
	fi

	# build bbsuid
	msg "Building bbsuid"
	${CC:-${CROSS_COMPILE}gcc} $CPPFLAGS $CFLAGS \
		$LDFLAGS "$srcdir"/bbsuid.c -o "$_dyndir"/bbsuid

	msg "Building ssl_client"
	# shellcheck disable=SC2046  # Allow wordsplitting for pkg-config
	${CC:-${CROSS_COMPILE}gcc} $CPPFLAGS $CFLAGS $(pkg-config --cflags libcrypto libssl) \
		"$srcdir"/ssl_client.c -o "$_dyndir"/ssl_client $LDFLAGS $(pkg-config --libs libcrypto libssl)

	# build dynamic
	cd "$_dyndir"
	msg "Building dynamic busybox"
	echo "COPIED CONFIG to $(pwd)/.config"
	cp "$_config" .config
	[ "$CLIBC" = musl ] && sed -i \
		-e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \
		.config
	make -C "$builddir" O="$PWD" silentoldconfig
	make CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"

	# build dynamic (extras)
	cd "$_dyndir_extras"
	msg "Building dynamic busybox-extras"
	cp "$_config_extras" .config
	[ "$CLIBC" = musl ] && sed -i \
		-e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \
		.config
	make -C "$builddir" O="$PWD" silentoldconfig
	make CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"
	# Yes, the above command line is verbose, but it needs to be duplicated verbatim
	# for every build. Because the busybox build system is extremely brittle and
	# breaks on *any* attempt to factorize it.

	# build static
	cd "$_staticdir"
	msg "Building static busybox"
	# enable internal ssl_client for static build
	sed -e "s/.*CONFIG_PIE.*/\# CONFIG_PIE is not set/" \
		-e "s/.*CONFIG_STATIC\([A-Z_]*\).*/CONFIG_STATIC\1=y/" \
		-e "s/.*CONFIG_SSL_CLIENT.*/CONFIG_SSL_CLIENT=y/" \
		"$_config" > .config
	# musl does not support GNU regex
	[ "$CLIBC" = musl ] && sed -i \
		-e "s/CONFIG_EXTRA_COMPAT=y/CONFIG_EXTRA_COMPAT=n/" \
		.config
	make -C "$builddir" O="$PWD" silentoldconfig
	make CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"
	mv busybox busybox.static
}

check() {
	local _extra_cflags= _extra_libs=
	if [ -z "$BOOTSTRAP" ] ; then
		_extra_cflags="$(pkg-config --cflags --static utmps)"
		_extra_libs="$(pkg-config --libs --static utmps)"
	fi

	# Set VERBOSE to see expected outcome of each test (runtest -v flag).
	# Set DEBUG to enable command trace (see testsuite/testing.sh).

	cd "$_dyndir"
	SKIP_KNOWN_BUGS=1 make -C "$builddir" O="$PWD" V=1 check CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"

	cd "$_dyndir_extras"
	SKIP_KNOWN_BUGS=1 make -C "$builddir" O="$PWD" V=1 check CONFIG_EXTRA_CFLAGS="$_extra_cflags" CONFIG_EXTRA_LDLIBS="$_extra_libs"
}

package() {
	local file
	mkdir -p "$pkgdir"/usr/sbin "$pkgdir"/usr/bin "$pkgdir"/tmp \
		"$pkgdir"/var/cache/misc "$pkgdir"/bin "$pkgdir"/sbin \
		"$pkgdir"/usr/share/man/man1 \
		"$pkgdir"/etc/conf.d "$pkgdir"/etc/init.d
	chmod 1777 "$pkgdir"/tmp
	cd "$srcdir"
	for file in *.confd ; do
		install -D -m 0644 $file "$pkgdir"/etc/conf.d/${file%%\.confd}
	done
	for file in *.initd ; do
		install -D -m 0755 $file "$pkgdir"/etc/init.d/${file%%\.initd}
	done

	cd "$_dyndir"
	install -m755 busybox "$pkgdir"/bin/busybox
	install -m 644 docs/busybox.1 "$pkgdir"/usr/share/man/man1/busybox.1

	#ifupdown needs those dirs to be present
	mkdir -p \
		"$pkgdir"/etc/network/if-down.d \
		"$pkgdir"/etc/network/if-post-down.d \
		"$pkgdir"/etc/network/if-post-up.d \
		"$pkgdir"/etc/network/if-pre-down.d \
		"$pkgdir"/etc/network/if-pre-up.d \
		"$pkgdir"/etc/network/if-up.d
	install -m775 "$srcdir"/dad.if-up "$pkgdir"/etc/network/if-up.d/dad

	install -Dm644 "$srcdir"/acpid.logrotate \
		"$pkgdir/etc/logrotate.d/acpid"

	mkdir -p "$pkgdir"/var/lib/udhcpd
	install -Dm644 "$builddir"/examples/udhcp/udhcpd.conf \
		"$pkgdir"/etc/udhcpd.conf
	install -Dm644 "$srcdir"/udhcpc.conf "$pkgdir"/etc/udhcpc/udhcpc.conf
	cat >"$pkgdir"/etc/securetty <<EOF
console
tty0
tty1
tty2
tty3
tty4
tty5
tty6
tty7
tty8
tty9
tty10
tty11
hvc0
ttyS0
ttyS1
ttyS2
ttyGS0
ttyAMA0
ttyAMA1
ttyTCU0
ttyTHS0
ttyTHS1
ttymxc0
ttymxc2
EOF

	# script for udhcpc
	install -Dm755 "$srcdir"/default.script \
		"$pkgdir"/usr/share/udhcpc/default.script

	# Install a list of symlinks installed by busybox.  This is useful for
	# building and analyzing Alpine-based images which contain busybox, where
	# you don't want to run busybox --list-path at analysis or build time.
	if [ "$CHOST" = "$CBUILD" ]; then
		mkdir -p "$pkgdir"/etc/busybox-paths.d
		"$pkgdir"/bin/busybox --list-path > "$pkgdir"/etc/busybox-paths.d/busybox
	fi
}

extras() {
	pkgdesc="Additional binaries of Busybox"
	depends="$pkgname"
	install -Dm755 "$_dyndir_extras"/busybox "$subpkgdir"/bin/busybox-extras

	# Install a list of symlinks installed by busybox-extras.  This is useful for
	# building and analyzing Alpine-based images which contain busybox, where
	# you don't want to run busybox --list-path at analysis or build time.
	if [ "$CHOST" = "$CBUILD" ]; then
		mkdir -p "$subpkgdir"/etc/busybox-paths.d
		"$subpkgdir"/bin/busybox-extras --list-path > "$subpkgdir"/etc/busybox-paths.d/busybox-extras
	fi
}

suid() {
	pkgdesc="suid binaries of Busybox"
	depends="$pkgname"

	cd "$_dyndir"
	mkdir -p "$subpkgdir"/bin
	install -m4111 bbsuid "$subpkgdir"/bin/bbsuid
}

static() {
	pkgdesc="Statically linked Busybox"
	mkdir -p "$subpkgdir"/bin
	install -m755 "$_staticdir"/busybox.static \
		"$subpkgdir"/bin/busybox.static
}

ssl_client() {
	pkgdesc="EXternal ssl_client for busybox wget"
	local _sslver=$(pkg-config --modversion libssl)
	# automatically pull in if both busybox and libssl is installed
	install_if="$pkgname=$pkgver-r$pkgrel libssl${_sslver%%.*}"
	mkdir -p "$subpkgdir"/usr/bin
	install -m755 "$_dyndir"/ssl_client \
		"$subpkgdir"/usr/bin/ssl_client
}

ifupdown() {
	pkgdesc="placeholder package for busybox ifupdown"
	provides="ifupdown-any"
	provider_priority=200
	mkdir -p "$subpkgdir"
}

binsh() {
	pkgdesc="busybox ash /bin/sh"
	provides="/bin/sh"
	provider_priority=100

	mkdir -p "$subpkgdir"/bin

	ln -s /bin/busybox "$subpkgdir"/bin/sh
}

_helper_openrc() {
	local file
	for file ; do
		if test ${file%%\.confd} != $file ; then
			amove "etc/conf.d/${file%%\.confd}"
		elif test ${file%%\.initd} != $file ; then
			amove "etc/init.d/${file%%\.initd}"
		fi
	done
}

openrc() {
	depends="openrc>=0.24.1-r6"
	replaces="openntpd busybox-initscripts acpid-openrc"
	_helper_openrc $_openrc_files
	# poweroff script for acpid
	mkdir -p "$subpkgdir"/etc/acpi/PWRF
	{ echo '#!/bin/sh' ; echo poweroff ; } > "$subpkgdir"/etc/acpi/PWRF/00000080
	chmod 0755 "$subpkgdir"/etc/acpi/PWRF/00000080
}

mdev_openrc() {
	depends="openrc>=0.24.1-r6 mdev-conf"
	replaces="busybox-initscripts"
	provides="dev-openrc"
	provider_priority=30
	_helper_openrc $_mdev_openrc_files
}

extras_openrc() {
	depends="openrc>=0.24.1-r6 busybox-extras"
	replaces="busybox-initscripts"
	_helper_openrc $_extras_openrc_files
}

sha512sums="
8c0c754c9ae04b5e6b23596283a7d3a4ef96225fe179f92d6f6a99c69c0caa95b1aa56c267f52d7c807f6cc69e1f0b7dd29a8ac624098f601738f8c0c57980d4  busybox-1.36.1.tar.bz2
17249174b24ba77b6138d640eee4eebcda567a86656623122d8b31044a762ea472096c406d70ba1a1f79450236fa259d4f46c363fa25db6cc4d44950e7a4b223  0001-modutils-check-ELF-header-before-calling-finit_modul.patch
7ebb1ab462083564d2ace3e5719464326b91a40cfcf6117de4b393d3f01ed7acd37a583725323dce4220e255ba742428e0160072a90e4d566b4d7053d1f4a37f  0002-adduser-default-to-sbin-nologin-as-shell-for-system-.patch
f7caad3ef18db7de6deff0fb7b7a7e82fff613d4245f334b56a11e982c40ebcfc6160c235e49d0b4fa7d39b58c0e4924e14473a3770a66d1ef7d4df379b6d858  0003-ash-add-built-in-BB_ASH_VERSION-variable.patch
383cbc2f2f644dc34678d145ea27696a7fa7f46b8952a3448de78d516cb0452872abbc37cb3dcf2b6725c6f7675b972554404b462dec377a8e61c3b73c1cd890  0004-Avoid-redefined-warnings-when-buiding-with-utmps.patch
ce30a642e6804827ef4f7e453d162747143a52dc905950998e996d84767d19548bbbd51bd25530575670c5942137f6926e3cb6f8668e7410569d695bb4165170  0005-libbb-sockaddr2str-ensure-only-printable-characters-.patch
fa0c2f58e5bb8f646bc8451ce00375d860ded228fb7ec4ed61e3920e41990822be1fcdd8cdf9c0342318ba263516a71a837549a9bf52875b1ba652fbc7c54f92  0006-modinfo-add-k-option-for-kernel-version.patch
7313809f283d68521308f7178f6d6e458ee5c826f4c50f40a4595c7a71042d0fe83d938ad2af08e95cbfbc7c0c690fb6c2b2578c2f3e41055bf06bc5cc22d2f2  0007-nologin-Install-applet-to-sbin-instead-of-usr-sbin.patch
24b57ec15205a006310096c63829c8e09820aa8a816a9652bbf9f90efc3e6d28893be1d917deac9793121cd9cca811773272776ead121cc30e9e77cbe904cbcd  0008-pgrep-add-support-for-matching-against-UID-and-RUID.patch
63dae6bf0adb2def1436bed2bcd6ea889bbf666799a8282345e6a4bbf2b567732456fdb20439df870ead5bf242ce2b403170075429b951c5fdf53c134c9e9ef3  0009-properly-fix-wget-https-support.patch
7fea95c4d686b4f5cc5d86b3f5e0df246767b2f86349d36a9596c05af10e7d616edaee2597bcbe96c73b8d307ca6286d276308dce52b881085e67eaaa2b23542  0010-sed-check-errors-writing-file-with-sed-i.patch
2ddf584e1e960a45675e08f6bd4e61a80251bed0fe76ad968b79f4a15d0da89039a3ca62ee6f9605c56ca7e86d8c5696e8ec235acb90bed0998073fef1a4b2dd  0011-fsck-resolve-LABEL-.-UUID-.-spec-to-device.patch
05b00a98c2d5a2cab89bb6b6b80a39cea5fc2f5ea27589d39232fb2f8b85e2fca78cef84f55de202702274c1c7f7802dd04497a212834ae931297767a9186dc9  0012-nslookup-sanitize-all-printed-strings-with-printable.patch
85d85dcf1fc9c54ed7cbb7ffac36971b6d0a1024e7b6df7fcdccb7e3832bf6b1fa0b0d2e2b7990d0154b752af35a9e8b9b815e244226a9d190c56bf09e9094eb  0013-ash-exec-busybox.static.patch
42a61fa7ad5eeb757f1985331d10ac3a9977aeed8add0eff16aba3da20be0b0e19ed4b9544b6efa75c31d481af5353d7a9707750f5dcb99975f40591bed49a03  0014-app-location-for-cpio-vi-and-lspci.patch
a4a440645f1e8be9b1a92d8611190425e339049cf3e21e837f41b348796b3bb81c4369846d837359e7fbc74a32c34cea7e6924d77ca0865550c84f47fd73a1de  0015-udhcpc-set-default-discover-retries-to-5.patch
c1c522487cde86f73efb4800f610d54674d3fa381a0266598cf6c1b002b2b18be9011014b26d5d5ab82c22f6a9eaa920f32cfbb956790880497ff4316c26a64d  0016-ping-make-ping-work-without-root-privileges.patch
a9f7dd37b2722265089b39d24d47e9c4911ff1e31f9dd1c3d5ba49bca7656f3fd2b42dcfd2f837ba5ae6b850dd1b02bb6af9a97a3980fe098daf1c20fb2a4630  0017-fbsplash-support-console-switching.patch
5653c818400c38966726adf1c99b603f6f760179a291c13b5320b79e0ef63d1ad9251b276d6eed68a6b8c95bfabd95eccce9d73edbc2ea888b994d6a02763050  0018-fbsplash-support-image-and-bar-alignment-and-positio.patch
ce4316e44148562addc1f5839166ca9314ee6f26dae218617c287791a8d9239e374f993688a9299e24c9a237e4c21e481a0b35baa4e8b123ce9e2b23d065001c  0019-depmod-support-generating-kmod-binary-index-files.patch
80c426dc2ea6cafa359a078a4a283735db0b3611a6c953ee7b7b2ec00c41a1263b61085c37447fcc50a01c229db93fa8fa675b8c995040eb31e9ed6f3723a0cf  0020-Add-flag-for-not-following-symlinks-when-recursing.patch
22c1d3233b210b8a334f31101eb6ff15d276eaef009758cff57a642b660ebe38114d7f3c8055113f12d6620acc8a8f0a2fe51dbede9100cd3d0eb5cdd2d01e39  0021-udhcpc-Don-t-background-if-n-is-given.patch
923c29b050f456210fbb06d72c77f53eff2179757e8595a8e9cd1ad3f1d4d300c525bec88de3170fa16dbe6a0ea498cdf01ab5a20a289af913ca05b27abab27d  0023-tests-fix-tarball-creation.patch
192fe9b535b3ae4cfbd8455d642e9c73b134ddbdf9265b3ebd1a185122bbb1064cf2c1f01840a8cf35d0665969846ff7168c215fdce96b46b031d73c16f7622f  0024-tests-musl-doesn-t-seem-to-recognize-UTC0-as-a-timez.patch
0a0e4c425879d8250b4dee925dc9feb2595ed68b1fdb5c22e78f3452e46dc17c882ea47f119c2308915f4105b69e5c6f38156131bee1fe9ba0ff684bfd10a049  0025-Hackfix-to-disable-HW-acceleration-for-MD5-SHA1-on-x.patch
09358ed36d6c13a50119a9d96898fdc2d3e6ca089659780604425ae3d32960a17c3083de81a131b1cf9a9a2b449e40a8ed6af3a8b916247571ebc41765ab365b  0026-lineedit-Handle-SIGWINCH-gracefully.patch
e3670ab567818a42593698546dcdabaa447c10682261c128901b4390eb2bf2dbea9e84f8f2dcdd6d67c82bf93bb1eed14406e5a8dd723b4670d1995b6100651f  0027-umount-Implement-O-option-to-unmount-by-mount-option.patch
d3bd84c42487de573c0c5165a847fd233ddcd4d53a61b1e03c30a46b6dba3993e741f12daf167b8347fb7a420b188f4027582f16e92dc822eb3293804dfc62f8  0028-ash-use-after-free-in-bash-pattern-substitution.patch
5f8c1a848f28aff2b28085950c561e1a51dfcea043da455e3daf9b960025dd8789ecfe43370553cb727d4ec239aa23c42e3ae5f6ef1cd5768d69c80c31b8f39e  0029-awk-fix-use-after-realloc-CVE-2021-42380-closes-1560.patch
28748a431718f270b2d0023d09f059e6a32501afb9fd243c4b127fec28bc9312ffb7fdcc1563544a2cb29bed66383ecfea7957d557f7b21402ec3bdb6938004f  0030-shell-avoid-segfault-on-0-0-0-09J-.-Closes-15216.patch
f12c2d5cdb3a6b81f109029b22a6b1064a32aee5a2c5ff0b0a290f9090d5eda060b35f62f2faba3315012e1a4366aad90afd84bf46d77c1a007e97f5cf21aca3  0031-ash-initialize-basepf.buf-in-ash.patch
0d71e70ed3de87f11a8a94e00b26e74d437b7ae96292507f1d42c850f461a4ea9de28d19f4fbfee087042fa6b14362e7046618d5dd0833cfac96954002766a60  0032-install-Fix-chown-resetting-suid-sgid-bits-from-chmo.patch
724cfa5dd9eba1b4de448d2e29762821492435e1687d5345b000309f8b38a20f735d57ee6e44c476add94ccb42dd01157d95b75c2da191d04e924dd6635992de  0033-find-fix-xdev-depth-and-delete.patch
7e929e71b398502f91b429b29c43a93ac05d2281cd8b021a5398f4ecaedd8061c048833ecc8f012adade2a197de85f18cb12f9513867222ea17f0acb9e7d9161  0034-udhcp-Avoid-leaking-uninitialized-stale-data.patch
aa93095e20de88730f526c6f463cef711b290b9582cdbd8c1ba2bd290019150cbeaa7007c2e15f0362d5b9315dd63f60511878f0ea05e893f4fdfb4a54af3fb1  acpid.logrotate
076f13b9d85ebf23aff8c0a2f313d3ca05f4d1c0d3ed06b0bc274d41deda3bd4808a8381f7c0411e8188b67315cc7ac8dced1b4473cda3c247773dbce2b71f55  busyboxconfig
cfd96023125ca27c6eddb13af490a36e5e7d2fcfd0847363e48f1fa5ce237e93e6a9fe4577feeb35291d79d6240ae5e6a518b9258966e0fac27e30a43172b792  busyboxconfig-extras
0becc2186d6c32fb0c401cf7bc0e46268b38ce8892db33be1daf40273024c1c02d518283f44086a313a2ccef34230a1d945ec148cc173f26e6aa9d88a7426e54  bbsuid.c
6321c1d96d8938a3b5eab21731de289ede136fff550f98127c509452bfb17769ccf94b118491f7b81d3c60e1bbb3e80bb07186e4ce07e29724a52f0daba9b218  dad.if-up
26eac967d6cfe13b7dc973112de145543ac0bdda9e9dd3a69bbd8c133ae6a20387abe9377917efb770b191130d3a6385ff5738abc84a8216d7b86ae88b159260  ssl_client.c
e56f9d74f7d471893ff9c3fde319b989e1854c9b12f06c1b6739694b07165ae256b5c555bc75c92986265df7f0a276001aba73853855c7a0fb3404a091a92c86  default.script
5f9ff70f99a970e88460c0de81a6637d8a82252fba6715e259833f16ed8cbfc3440972b1fa454eb77dbbcd1e244774c96b4eef96f71a2b67a9039a0dd5e6fc1e  udhcpc.conf
fcb532233fd7ba8cad302d037b88cff00ee8b96b37c90b34fc823479208cf7cdda48818c972ce2c4703b7283fd58e99ba8a724818f884f3b09eaa7e2d6ffad21  acpid.initd
34c6f3197064bb91619b899b28a201bd4d920b18bded3845440b2cb36dc6f16cabf447c96878349b16e46c30184cbe48bac00a01c5f7cf1be038c0b7136064c5  crond.confd
0e8266b1bf1d533de7531f32b27c815db00378df6e9ee98232ba3b9cb4f3e1770db65290d338ac0745aca52dd99c3c128dde3fa81ed110dd02c4a298a2f62b1b  crond.initd
f9bf43b72142bbb4c0665c1268a3d91586ef8a057dfe64c53b6923815d2db1f669b8080a38311ad89cda0b783a8628700fc5414d834a21d8e48515760bb910f7  klogd.confd
50b975ac94722e8584249a73b7f36134cb954ad19716b7f3437a6e2cde2a81465ef153b04a0b8e734fc7971320df71cd8c75e669bb4da86233c1991bc516260f  klogd.initd
b0ba67585f39d83320ed6de183d7463a0e163807b9f3dc6f0baa212236056f22aeb2c5399dfdcd54929eb5ae06a15714c2fed133b5888869ed9d9cf589cef843  ntpd.confd
9e0aedd8f0d546532ad99fb5d3043e222d3f85bfebe2a01609a47b1eef5339750e81753c12eeb79852cefc88e9ff28c54b8858be44702c871c32ca82390d71d2  ntpd.initd
11b2a71c38c87d95cd19307481b5f05d9aa980f1ee8348a90b14d698a78b5d0109974fef782ae6538177bcf8bb9fc9cd6f8e4a368ff6b6266276745f1394c2e0  rdate.confd
a95d03564712803fc58c48534f2fbbf23dd8418ffd3a6a06f840e969627892eea518b4fe17f059850665fc056cedf972c26aee52c309805987fb5c59a710bd30  rdate.initd
bf8173ee33a5d2b61cbdbc1b070e599a17a21e5433a0d8aa9beef71e4ac831304076af8e7e58dc594cdee61562329793afdc57af91e5496bf5fffb9b734a3d9c  syslog.confd
a13a6add6f7fb10a3a2563391b6f8b68161249147e9f50e6d857c5689123f6d974368ce4f13b8d93312fa38d05f604d67c4c976d8a7eef301af50a3a6ad50c23  syslog.initd
acbba3385fb2c416362eb9176f24146b617a2e394ee0e00b9eff89350f82468a5ab8396f4f52b0aaf03d341ac6150c73182e808fa3f29a2dc71c69271cdfb811  loadkmap.confd
1b61a0f1eb40f2ea14bf3ed3441996f343d70fd45858d443f21244f133dcdf1c64433c3deaef769eee4e3e698b405f25e1bbc185a25c351a88ce7d120d61cf00  loadkmap.initd
359af0a4a1841dd6557eaf3e71d39f0d7a2687bad6a8fc6ef436eccf72a40f85c6400a3b7880c7f64d8e460b6af8a0ff3dd5ffc3a4b1aa8eb0d8f7eaf99ee3e4  watchdog.confd
53d19009e571dcd3920890c88da815709bfadfffc6946e2dec347d80291622475381a61e9b5cccc15f69f15c0778c192c0112a9f70f379205490b1924ad44a20  watchdog.initd
6ce0b2a8fe69cc7ea657c5b9076aba51c8f0beeaafa4a887d8673bcc9f9cf8ee40f4b07d2d901ec7a1a1e4f29c150c496559559e803595d0bd487dec56b530a2  mdev.initd
8af4a5652c418274c3f9ea2698d5026ebea78cd6cbd78e7779125d039aa5807fe92a44e70062b53fe6b830c3fe479f0e6d6ee4a61f37cf4814e895cf1b6ea215  dnsd.initd
b8ffad8394dee7c2613a047cc34d6b7d650b576c6c9c8427c1ecf9148ca57e4cb3ea9fbc13525f104dde8e30bc78fe3ad4747d534b55750f5c76e8f98368cd33  httpd.initd
7b286eaba66a4c86366eec38cd94d8547a15bff72923456edf8c683d4e02bf55d85628adbdb7c1c44f3b16b545ea0ca238afa14a73fc1ade0c33ed7e9fcf2b49  inetd.initd
4a8d1e924284fca730a262fedc3cb76b4f4689a6c650b0c5544b65eeab6cfd9e8eb91f448d9ebbba6efbb056695428c1b26e5eaeb7233bae090676d1789954cc  udhcpd.initd
"
